home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1996 June / Software of the Month Club 1996 June.iso / pc / dos / edu / colaid / col_aid.2 / PSLS12X8.PS < prev    next >
Encoding:
Text File  |  1992-03-30  |  11.6 KB  |  478 lines

  1. % IBM line drawing characters
  2.  
  3. FontDirectory /IBMLine known not {
  4. 33 dict dup begin
  5.  
  6. /mtrx matrix def
  7.  
  8. /FontType 3 def
  9.  
  10. /FontMatrix [.001 0 0 .001 0 0] def
  11.  
  12. /FontBBox [0 -280 600 720] def
  13.  
  14. /Encoding 256 array def
  15. Encoding
  16.  
  17. dup 176 /25gray put
  18. dup 184 /type1NE put
  19. dup 177 /50gray put
  20. dup 185 /dblE put
  21. dup 178 /75gray put
  22. dup 186 /dblVERT put
  23. dup 179 /sVERT put
  24. dup 187 /dblNE put
  25. dup 180 /sE put
  26. dup 188 /dblSE put
  27. dup 181 /type1E put
  28. dup 189 /type2SE put
  29. dup 182 /type2E put
  30. dup 190 /type1SE put
  31. dup 183 /type2NE put
  32. dup 191 /sNE put
  33. dup 192 /sSW put
  34. dup 200 /dblSW put
  35. dup 193 /sS put
  36. dup 201 /dblNW put
  37. dup 194 /sN put
  38. dup 202 /dblS put
  39. dup 195 /sW put
  40. dup 203 /dblN put
  41. dup 196 /sHORIZ put
  42. dup 204 /dblW put
  43. dup 197 /sCENTER put
  44. dup 205 /dblHORIZ put
  45. dup 198 /type1W put
  46. dup 206 /dblCENTER put
  47. dup 199 /type2W put
  48. dup 207 /type1S put
  49. dup 208 /type2S put
  50. dup 216 /type1CENTER put
  51. dup 209 /type1N put
  52. dup 217 /sSE put
  53. dup 210 /type2N put
  54. dup 218 /sNW put
  55. dup 211 /type2SW put
  56. dup 219 /solidbox put
  57. dup 212 /type1SW put
  58. dup 220 /solidbottom put
  59. dup 213 /type1NW put
  60. dup 221 /solidleft put
  61. dup 214 /type2NW put
  62. dup 222 /solidright put
  63. dup 215 /type2CENTER put
  64. dup 223 /solidtop put
  65. 255 /.notdef put
  66.  
  67. /CharacterDefs 256 dict def
  68. CharacterDefs begin
  69.  
  70. /.notdef {} def
  71.  
  72. /25gray { newpath
  73.   0 -280 moveto 0 720 lineto 600 720 lineto 600 -280 lineto
  74.   closepath
  75.   .75 setgray fill
  76. } def
  77.  
  78. /50gray { newpath
  79.   0 -280 moveto 0 720 lineto 600 720 lineto 600 -280 lineto
  80.   closepath
  81.   .50 setgray fill
  82. } def
  83.  
  84. /75gray { newpath
  85.   0 -280 moveto 0 720 lineto 600 720 lineto 600 -280 lineto
  86.   closepath
  87.   .25 setgray fill
  88. } def
  89.  
  90. /sVERT { newpath
  91.   300 -280 moveto  300 720 lineto
  92.   40 setlinewidth stroke
  93. } def
  94.  
  95. /sE { newpath
  96.   300 -280 moveto 300 720 lineto
  97.   0 220 moveto 300 220 lineto
  98.   40 setlinewidth stroke
  99. } def
  100.  
  101. /type1E { newpath
  102.   300 720 moveto 300 -280 lineto
  103.   0 320 moveto 300 320 lineto
  104.   0 120 moveto 300 120 lineto
  105.   40 setlinewidth stroke
  106. } def
  107.  
  108. /type2E { newpath
  109.   200 720 moveto 200 -280 lineto
  110.   400 720 moveto 400 -280 lineto
  111.   0 220 moveto 200 220 lineto
  112.   40 setlinewidth stroke
  113. } def
  114.  
  115. /type2NE { newpath
  116.   0 220 moveto 400 220 lineto 400 -280 lineto
  117.   200 220 moveto 200 -280 lineto
  118.   40 setlinewidth stroke
  119. } def
  120.  
  121. /type1NE { newpath
  122.   0 320 moveto 300 320 lineto 300 -280 lineto
  123.   0 120 moveto 300 120 lineto
  124.   40 setlinewidth stroke
  125. } def
  126.  
  127. /dblE { newpath
  128.   0 320 moveto 200 320 lineto 200 720 lineto
  129.   0 120 moveto 200 120 lineto 200 -280 lineto
  130.   400 720 moveto 400 -280 lineto
  131.   40 setlinewidth stroke
  132. } def
  133.  
  134. /dblVERT { newpath
  135.   200 720 moveto 200 -280 lineto
  136.   400 720 moveto 400 -280 lineto
  137.   40 setlinewidth stroke
  138. } def
  139.  
  140. /dblNE { newpath
  141.   0 320 moveto 400 320 lineto 400 -280 lineto
  142.   0 120 moveto 200 120 lineto 200 -280 lineto
  143.   40 setlinewidth stroke
  144. } def
  145.  
  146. /dblSE { newpath
  147.   0 320 moveto 200 320 lineto 200 720 lineto
  148.   0 120 moveto 400 120 lineto 400 720 lineto
  149.   40 setlinewidth stroke
  150. } def
  151.  
  152. /type2SE { newpath
  153.   0 220 moveto 400 220 lineto 400 720 lineto
  154.   200 720 moveto 200 220 lineto
  155.   40 setlinewidth stroke
  156. } def
  157.  
  158. /type1SE { newpath
  159.   0 120 moveto 300 120 lineto 300 720 lineto
  160.   0 320 moveto 300 320 lineto
  161.   40 setlinewidth stroke
  162. } def
  163.  
  164. /sNE { newpath
  165.   0 220 moveto 300 220 lineto 300 -280 lineto
  166.   40 setlinewidth stroke
  167. } def
  168.  
  169. /sSW { newpath
  170.   300 720 moveto 300 220 lineto 600 220 lineto
  171.   40 setlinewidth stroke
  172. } def
  173.  
  174. /sS { newpath
  175.   0 220 moveto 600 220 lineto
  176.   300 220 moveto 300 720 lineto
  177.   40 setlinewidth stroke
  178. } def
  179.  
  180. /sN { newpath
  181.   0 220 moveto 600 220 lineto
  182.   300 220 moveto 300 -280 lineto
  183.   40 setlinewidth stroke
  184. } def
  185.  
  186. /sW { newpath
  187.   300 720 moveto 300 -280 lineto
  188.   300 220 moveto 600 220 lineto
  189.   40 setlinewidth stroke
  190. } def
  191.  
  192. /sHORIZ { newpath
  193.   0 220 moveto 600 220 lineto
  194.   40 setlinewidth stroke
  195. } def
  196.  
  197. /sCENTER { newpath
  198.   300 720 moveto 300 -280 lineto
  199.   0 220 moveto 600 220 lineto
  200.   40 setlinewidth stroke
  201. } def
  202.  
  203. /type1W { newpath
  204.   300 720 moveto 300 -280 lineto
  205.   300 320 moveto 600 320 lineto
  206.   300 120 moveto 600 120 lineto
  207.   40 setlinewidth stroke
  208. } def
  209.  
  210. /type2W { newpath
  211.   200 720 moveto 200 -280 lineto
  212.   400 720 moveto 400 -280 lineto
  213.   400 220 moveto 600 220 lineto
  214.   40 setlinewidth stroke
  215. } def
  216.  
  217. /dblSW { newpath
  218.   400 720 moveto 400 320 lineto 600 320 lineto
  219.   200 720 moveto 200 120 lineto 600 120 lineto
  220.   40 setlinewidth stroke
  221. } def
  222.  
  223. /dblNW { newpath
  224.   400 -280 moveto 400 120 lineto 600 120 lineto
  225.   200 -280 moveto 200 320 lineto 600 320 lineto
  226.   40 setlinewidth stroke
  227. } def
  228.  
  229. /dblS { newpath
  230.   0 320 moveto 200 320 lineto 200 720 lineto
  231.   400 720 moveto 400 320 lineto 600 320 lineto
  232.   0 120 moveto 600 120 lineto
  233.   40 setlinewidth stroke
  234. } def
  235.  
  236. /dblN { newpath
  237.   0 320 moveto 600 320 lineto
  238.   400 -280 moveto 400 120 lineto 600 120 lineto
  239.   0 120 moveto 200 120 lineto 200 -280 lineto
  240.   40 setlinewidth stroke
  241. } def
  242.  
  243. /dblW { newpath
  244.   400 720 moveto 400 320 lineto 600 320 lineto
  245.   400 -280 moveto 400 120 lineto 600 120 lineto
  246.   200 720 moveto 200 -280 lineto
  247.   40 setlinewidth stroke
  248. } def
  249.  
  250. /dblHORIZ { newpath
  251.   0 320 moveto 600 320 lineto
  252.   0 120 moveto 600 120 lineto
  253.   40 setlinewidth stroke
  254. } def
  255.  
  256. /dblCENTER { newpath
  257.   0 320 moveto 200 320 lineto 200 720 lineto
  258.   0 120 moveto 200 120 lineto 200 -280 lineto
  259.   400 720 moveto 400 320 lineto 600 320 lineto
  260.   400 -280 moveto 400 120 lineto 600 120 lineto
  261.   40 setlinewidth stroke
  262. } def
  263.  
  264. /type1S { newpath
  265.   0 320 moveto 600 320 lineto
  266.   0 120 moveto 600 120 lineto
  267.   300 720 moveto 300 320 lineto
  268.   40 setlinewidth stroke
  269. } def
  270.  
  271. /type2S { newpath
  272.   0 220 moveto 600 220 lineto
  273.   200 720 moveto 200 220 lineto
  274.   400 720 moveto 400 220 lineto
  275.   40 setlinewidth stroke
  276. } def
  277.  
  278. /type1N { newpath
  279.   0 320 moveto 600 320 lineto
  280.   0 120 moveto 600 120 lineto
  281.   300 120 moveto 300 -280 lineto
  282.   40 setlinewidth stroke
  283. } def
  284.  
  285. /type2N { newpath
  286.   0 220 moveto 600 220 lineto
  287.   200 220 moveto 200 -280 lineto
  288.   400 220 moveto 400 -280 lineto
  289.   40 setlinewidth stroke
  290. } def
  291.  
  292. /type2SW { newpath
  293.   200 720 moveto 200 220 lineto 600 220 lineto
  294.   400 220 moveto 400 720 lineto
  295.   40 setlinewidth stroke
  296. } def
  297.  
  298. /type1SW { newpath
  299.   300 720 moveto 300 120 lineto 600 120 lineto
  300.   300 320 moveto 600 320 lineto
  301.   40 setlinewidth stroke
  302. } def
  303.  
  304. /type1NW { newpath
  305.   300 -280 moveto 300 320 lineto 600 320 lineto
  306.   300 120 moveto 600 120 lineto
  307.   40 setlinewidth stroke
  308. } def
  309.  
  310. /type2NW { newpath
  311.   200 -280 moveto 200 220 lineto 600 220 lineto
  312.   400 -280 moveto 400 220 lineto
  313.   40 setlinewidth stroke
  314. } def
  315.  
  316. /type2CENTER { newpath
  317.   200 720 moveto 200 -280 lineto
  318.   400 720 moveto 400 -280 lineto
  319.   0 220 moveto 200 220 lineto
  320.   400 220 moveto 600 220 lineto
  321.   40 setlinewidth stroke
  322. } def
  323.  
  324. /type1CENTER { newpath
  325.   0 320 moveto 600 320 lineto
  326.   0 120 moveto 600 120 lineto
  327.   300 720 moveto 300 320 lineto
  328.   300 120 moveto 300 -280 lineto
  329.   40 setlinewidth stroke
  330. } def
  331.  
  332. /sSE { newpath
  333.   0 220 moveto 300 220 lineto 300 720 lineto
  334.   40 setlinewidth stroke
  335. } def
  336.  
  337. /sNW { newpath
  338.   300 -280 moveto 300 220 lineto 600 220 lineto
  339.   40 setlinewidth stroke
  340. } def
  341.  
  342. /solidbox { newpath
  343.   0 -280 moveto 0 720 lineto 600 720 lineto 600 -280 lineto
  344.   closepath fill
  345. } def
  346.  
  347. /solidbottom { newpath
  348.   0 -280 moveto 0 220 lineto 600 220 lineto 600 -280 lineto
  349.   closepath fill
  350. } def
  351.  
  352. /solidleft { newpath
  353.   0 -280 moveto 0 720 lineto 300 720 lineto 300 -280 lineto
  354.   closepath fill
  355. } def
  356.  
  357. /solidright { newpath
  358.   300 -280 moveto 300 720 lineto 600 720 lineto 600 -280 lineto
  359.   closepath fill
  360. } def
  361.  
  362. /solidtop { newpath
  363.   0 220 moveto 0 720 lineto 600 720 lineto 600 220 lineto
  364.   closepath fill
  365. } def
  366.  
  367. end
  368.  
  369. /BuildChar { 0 begin
  370.   /char exch def
  371.   /fontdict exch def
  372.   /charname fontdict /Encoding get char get def
  373.   fontdict begin
  374.     600 0 setcharwidth
  375.     CharacterDefs charname get exec
  376.   end
  377.   end
  378. } def
  379.  
  380. /BuildChar load 0 3 dict put
  381. /UniqueID 1 def
  382. end
  383.  
  384. /IBMLine exch definefont pop
  385. } if % not known
  386. % most essential non line drawing characters can be done via a remap
  387. /MapIBM {
  388.     /ibmfont  exch def
  389.     /basefont exch def
  390.     FontDirectory ibmfont known not {
  391.     12 dict begin
  392.     %--- copy the COURIER font info into the new font array ------
  393.     /newfont basefont findfont maxlength dict def
  394.     newfont /FontName ibmfont put
  395.     basefont findfont { exch dup /FID ne
  396.       { dup /Encoding eq 
  397.         { exch dup length array copy newfont 3 1 roll put }
  398.         { exch newfont 3 1 roll put } ifelse
  399.       }
  400.       { pop pop } ifelse
  401.     } forall
  402.     %---- foriegn characters - remap -----------------------------
  403.     /charmap [ 
  404.       8#200 /Ccedilla        8#201 /udieresis   8#202 /eacute 
  405.       8#203 /acircumflex     8#204 /adieresis   8#205 /agrave
  406.       8#206 /aring           8#207 /ccedilla    8#210 /ecircumflex
  407.       8#211 /edieresis       8#212 /egrave      8#213 /idieresis
  408.       8#214 /icircumflex     8#215 /igrave      8#216 /Adieresis
  409.       8#217 /Aring           8#220 /Eacute      8#221 /ae 
  410.       8#222 /AE              8#223 /ocircumflex 8#224 /odieresis 
  411.       8#225 /ograve          8#226 /ucircumflex 8#227 /ugrave
  412.       8#230 /ydieresis       8#231 /Odieresis   8#232 /Udieresis
  413.       8#233 /cent            8#234 /sterling    8#234 /yen
  414.       8#237 /florin          8#240 /aacute      8#241 /iacute
  415.       8#242 /oacute          8#243 /uacute      8#244 /ntilde
  416.       8#245 /Ntilde          8#246 /ordfeminine 8#247 /ordmasculine
  417.       8#250 /questiondown    8#255 /exclamdown  8#256 /guillemotleft
  418.       8#341 /germandbls  ] def
  419.       charmap aload pop
  420.       charmap length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
  421.     %---- all done defining the font -----------------------------
  422.     ibmfont newfont definefont pop
  423.   end
  424.   } if % known?
  425. } def
  426. % line drawing characters are defined in thier own font
  427.  
  428. /Courier /IBMFont MapIBM
  429. /Courier-Oblique /IBM-Oblique MapIBM
  430. /Courier-Bold /IBM-Bold MapIBM
  431. /Courier-BoldOblique /IBM-BoldOblique MapIBM
  432.  
  433. /leftmargin 25 def
  434. /lineheight  9 def
  435. /pagetop  540 def
  436. /sf  { findfont 10 scalefont setfont } def
  437. /sfc { findfont [7 0 0 12 0 0] makefont setfont } def
  438.  
  439. /markdict 1 dict def markdict begin
  440. /cleartomarkdict
  441. { {currentdict end /cleartomarkdict known {exit} if} loop} bind def
  442. end
  443. /restartpage true def
  444.  
  445. /ck { restartpage { 560 0 translate 90 rotate leftmargin pagetop moveto
  446.       /restartpage false def } if } def
  447.  
  448. /ushow { ck
  449.     dup stringwidth pop exch show gsave markdict begin mark exch
  450.     { currentfont begin FontMatrix
  451.       FontInfo begin 0 UnderlinePosition 2 index transform rmoveto
  452.       UnderlineThickness 0 3 -1 roll transform pop setlinewidth
  453.       end end neg 0 rlineto stroke
  454.     } stopped
  455.     pop cleartomarkdict cleartomark grestore
  456. } def
  457.  
  458. /lsh   { ck /IBMLine sf show } def
  459. /clsh  { ck /IBMLine sfc show } def
  460. /sh    { ck /IBMFont sf show } def
  461. /ish   { ck /IBM-Oblique sf  show } def
  462. /ush   { /IBMFont sf ushow } def
  463. /uish  { /IBM-Oblique sf ushow } def
  464. /bsh   { ck /IBM-Bold sf  show } def
  465. /ubsh  { /IBM-Bold sf  ushow } def
  466. /bish  { ck /IBM-BoldOblique sf show } def
  467. /ubish { /IBM-BoldOblique sf ushow } def
  468. /csh   { ck /IBMFont sfc show } def
  469. /cush  { /IBMFont sfc ushow } def
  470. /cish  { ck /IBM-Oblique sfc  show } def
  471. /cuish { /IBM-Oblique sfc ushow } def
  472. /cbsh  { ck /IBM-Bold sfc  show } def
  473. /cubsh { /IBM-Bold sfc ushow } def
  474. /cbish { ck /IBM-BoldOblique sfc show } def
  475. /cubish{ /IBM-BoldOblique sfc ushow } def
  476. /cr    { ck leftmargin currentpoint exch pop lineheight sub moveto } def
  477. /pf    { showpage /restartpage true def } def
  478.